/*
 * Professional Android, 4th Edition
 * Reto Meier and Ian Lake
 * Copyright 2018 John Wiley Wiley & Sons, Inc.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.professionalandroid.apps.earthquake;

import android.arch.persistence.room.TypeConverter;
import android.location.Location;

import java.util.Date;

public class EarthquakeTypeConverters {

  @TypeConverter
  public static Date dateFromTimestamp(Long value) {
    return value == null ? null : new Date(value);
  }

  @TypeConverter
  public static Long dateToTimestamp(Date date) {
    return date == null ? null : date.getTime();
  }

  @TypeConverter
  public static String locationToString(Location location) {
    return location == null ?
             null : location.getLatitude() + "," + location.getLongitude();
  }

  @TypeConverter
  public static Location locationFromString(String location) {
    if (location != null && (location.contains(","))) {
      Location result = new Location("Generated");
      String[] locationStrings = location.split(",");

      if (locationStrings.length == 2) {
        result.setLatitude(Double.parseDouble(locationStrings[0]));
        result.setLongitude(Double.parseDouble(locationStrings[1]));
        return result;
      }
      else return null;
    }
    else
      return null;
  }
}